This invention relates to a parallel processor consisting of a plurality of processors that can operate in parallel with one another.
As one of the methods of improving processing speed, there is known a method which constitutes a parallel processor system equipped with a plurality of processors operable in parallel with one another various reports have been made in the past on such a technique. (For instance, refer to ACM Transactions on Computer Systems, Vol. 1, No. 3, August 1983, pages 195-221.)
For programming in the conventional parallel processor system, a program consisting of the aggregate of units of work is generated and each of the units of work are executed in parallel so that one processing can be executed as a whole. This unit of work consists of a program and control information necessary for the execution of the program, but the present invention will hereinafter deal primarily with the program alone. Accordingly, the unit of work will be hereinafter called a "process" and a group of such processes, a "job". In the parallel processor system, one or a plurality of groups (jobs) are executed in parallel with one another.
When programming is made in conventional systems of this kind, it has been necessary to divide processing to be executed into a plurality of processes and to rely upon a hardware construction of the system to make program description for communication between the processes. In other words, it has been necessary to determine in advance which process is to be allotted to which processor.
Furthermore, in order to establish communication from a certain process to another such as transfer of data from the former to the latter, programming must be made so that the receiving process designates the identification number of the processor that is allotted at present. This requires excessive labor on the part of a programmer when preparing the program. In addition, when the number of processors changes such as when the number is increased or decreased due to trouble or the like, the programs that have been prepared previously cannot be used.
The conventional technique described above is not free from the drawback that the program of the parallel processor system depends greatly on the hardware and casts a burden on a programmer. Another problem is that portability of the program is low with respect to the change of the hardware construction of the parallel processor system. This means that system versatility is low.